The present invention relates to a method for eliminating noises in code division multiple access (CDMA) systems and, more particularly to a method for eliminating annoying noises of an Enhanced Variable Rate Codec (EVRC) of a CDMA system in a weak electromagnetic field.
Vocoders are used in communication devices, such as cellular phones or personal communication services (PCS), to provide digital signal compression of an analog audio signal that is converted into a digital form for transmission purpose. A conventional variable rate vocoder is disclosed in U.S. Pat. No. 5,414,796 issued to Jacobs et al. In this particular implementation of a variable rate vocoder, an input speech is encoded by using Code Excited Linear Predictive (CELP) coding technique at one of several rates as determined by a level of speech activity.
The CDMA Development Group (CDG) and Telecommunication Industry Association (TIA) finalized the specification of a new vocoder called Enhanced Variable Rate Codec (EVRC) for providing better quality than that of an existing vocoder. An EVRC algorithm is specified in TIA/EIA/IS-127, and an EVRC method is proposed in TIA/EIA/IS-718 with a fixed point C code.
The core of the standard EVRC algorithm is a Relaxed Code-Excited Linear Predictive (RCELP) coding. The RCELP coding is a generalization of the CELP speech coding algorithm and is particularly well suited for variable rate operation and robustness in CDMA environment.
FIG. 1 is a block diagram illustrating a conventional mobile station having an EVRC. Referring to FIG. 1, the mobile station comprises a Radio Frequency (RF) transmitter/receiver 10, a baseband analog processor 20, a Mobile Station Modem (MSM) 70, a Digital-to-Analog Converter 80, and an Analog-to-Digital Converter 90. The MSM 70 includes a baseband digital modem 30, a variable vocoder 40 having an encoder 50 and a decoder 60, and a Central Processing Unit (CPU) 70.
FIG. 2 is a block diagram illustrating the encoder of the EVRC shown in FIG. 1. Referring to FIG. 2, the encoder 50 eliminates DC components and noise contained in the input speech signal IN_SPEECH from the A/D converter 90 by using high-pass and adaptive noise suppression filtering. And the encoder 50 determines Linear Prediction Coefficients (LPCs) and a rate. An LPC analysis filter 55 generates an excitation signal EXCITATION in response to the LPC coefficients and the filtered input speech signal IN_SPEECHxe2x80x2. The LPCs are converted to Line Spectral Pairs (LSPs). An adaptive codebook search process and a fixed codebook search process are respectively executed, thereby an adaptive codebook memory 58 is updated. Through above described processes, the input speech signal IN_SPEECH is converted to a digital speech packet that is supplied to the baseband digital modem 30.
FIG. 3 is a block diagram illustrating the decoder of the EVRC shown in FIG. 1. Referring to FIG. 3, the decoder 60 includes an adaptive codebook decoder 61, a fixed codebook decoder 62, an adaptive codebook memory 63, an LPC synthesis filter 64, and an adaptive post filter 67 including a pitch post filter 65 and an LPC synthesis post filter 66. The adaptive codebook decoder 61 decodes adaptive codebook factors acb_gain and acb_delay from the encoder 50 and generates an adaptive codebook excitation signal. Similarly, the fixed codebook decoder 62 decodes fixed codebook factors fcb_gain and fcb_index from the encoder 50 and generates a fixed codebook excitation signal. The adaptive codebook excitation signal and the fixed codebook excitation signal are added for generating a total excitation signal EXCITATION. The excitation signal EXCITATION is used for updating the adaptive codebook memory 63. The LPC synthesis filter 64 generates a synthesized signal OUT_SPEECHxe2x80x2 in response to the excitation signal EXCITATION and the LPC coefficients from the encoder 50 which are interpolated. The synthesized signal OUT_SPEECHxe2x80x2 is post-filtered through the pitch post filter 65 and the LPC post filter 66 so as to generate an output speech signal OUT_SPEECH. The adaptive post filter 67 improves the perceived speech quality of the decoder output signal OUT_SPEECH.
Additionally, the decoder 60 of the EVRC 40 is used for processing error packets as well as the above described operations. When the decoder 60 receives an error packet, the decoder 60 detects a last valid rate of the error packet inputted and decays a decoded signal by the detected rate. For example, the detected rate is either a full rate or a half rate.
The decoder 60 based on the specifications TIA/EIA/IS-127 and TIA/EIA/IS-718 stores an average adaptive codebook gain avg_acb_gain and an average fixed codebook gain avg_fcb_gain, so as to determine a codebook gain of the inputted error packet. If the stored average adaptive codebook gain avg_acb_gain is greater than a predetermined reference value (for example, 0.2), the excitation signal EXCITATION is post-filtered by the pitch post filter 65 of the adaptive post filter 67, wherein the excitation signal EXCITATION includes the adaptive codebook factors.
If the stored average adaptive codebook gain avg_acb_gain is less than the reference value (for example, 0.2), a seed value for generating background noise is set by a certain LSP coefficient and the background noise is generated to the excitation signal EXCITATION. In that case, the excitation signal EXCITATION includes the sum of the adaptive codebook factors and the fixed codebook factors. The excitation signal EXCITATION is filtered by the adaptive post filter 67 with the pitch post filter 65. More detailed error packet processing routine of the decoder 60 will be described below with reference to FIG. 4, which is a flowchart illustrating a conventional method for processing an error packet of the decoder included in the EVRC and illustrates an algorithm based on the specifications TIA/EIA/IS-127 and TIA/EIA/IS-718 for the EVRC 40.
Referring to FIG. 4, at step S110, an error packet is inputted to the decoder 60 of the EVRC 40. A last valid rate of the input packet is determined at step S112. If the determined valid rate is either xe2x80x98fullxe2x80x99 or xe2x80x98halfxe2x80x99, it is asked at step S114 whether the error packet is occurring continually. If so, an average adaptive codebook gain avg_acb_gain is reduced to 75% at step S116, and then an excitation signal EXCITATION is generated from the calculated average adaptive codebook gain avg_acb_gain at step S118. The magnitude of the excitation signal EXCITATION is reduced to 75% because of the reduced average adaptive codebook gain avg_acb_gain.
If the error packet is determined not to occur continually at step 114, the flow continues to step S118 wherein the excitation signal EXCITATION is generated without the reduction. At step S120, it is determined whether the average adaptive codebook gain avg_acb_gain is less than a predetermined reference value of 0.2. If so, at step S122, the seed value is set and the background noise is generated to the excitation signal EXCITATION. If not, the background noise is not generated. At step S124, the excitation signal EXCITATION is post-filtered through the pitch post filter 65 and the LPC post filter 66, so as to improve the perceived speech quality of the output speech signal. At step S126, the final output speech signal is doubled to be outputted from the decoder 60 and the error packet processing routine of the decoder 60 of the EVRC 40 is ended.
At step S112, if the error packet has the last valid rate of an eighth, the control flow proceeds to step S128 wherein the background noise is produced in response to a seed value, and an excitation signal EXCITATION is generated by an average eighth gain and the generated background noise, wherein the seed value in the eighth rate is set at the beginning of the decoder. At step S130, the excitation signal EXCITATION is filtered through the LPC post filter 66 without the pitch post filter 65. At step S132, the final output speech signal is outputted without amplification, and the error packet processing routine of the decoder 60 of the EVRC 40 is ended.
Otherwise, above described error packet processing routine of the decoder 60 based on the TIA/EIA/IS-718 specification has the problem that the decoder 60 of the EVRC 40 generates annoying noise in a weak electromagnetic field, which inputs a large number of error packets to the decoder 60.
As is shown in step S122 of FIG. 4, at the full rate and the half rate, the seed value for generating the background noise is set to the same number in every subframe of the error packet while the error packet is inputted continually. Thus, the annoying noise is generated periodically in every subframe of the error packet by the periodical seed value. When the stored average fixed codebook gain avg_fcb_gain is great, a loud annoying noise is maintained continually before inputting a valid frame, because the average fixed codebook gain avg_fcb_gain is not decayed by the specifications TIA/EIA/IS-127 and TIA/EIA/IS-718.
Additionally, in the error packet processing routine with the eighth rate according to the specifications TIA/EIA/IS-127 and TIA/EIA/IS-718, the decoder 60 of the EVRC 40 uses the average eighth gain for determining the gain of the background noise by storing the average eighth gain of the last valid frame. As described above, the average eighth gain is not decayed by the specifications TIA/EIA/IS-127 and TIA/EIA/IS-718, so that the loud annoying noise is maintained continually before inputting a valid frame when the stored average eighth gain is great.
Generally, the level of the post-filtered signal goes down under certain level (i.e., about 50%), when the excitation signal is post-filtered by the pitch post filter 65. During the post-filtering the post-filtered signal is quantized, so that the data loss is occurred. The quantized post-filtered signal is compensated by amplification, as shown in the step S126 of FIG. 4. In this case, output speech signal of the decoder 60 is affected by granular noise because of the amplified quantized signal.
It is an object of the present invention to provide a method for eliminating periodically generated annoying noises of an Enhanced Variable Rate Codec (EVRC) in a weak electromagnetic field.
It is another object of the present invention to provide a method for generating more comfortable background noises in EVRC.
In order to attain the above objects as well as other objects, according to an aspect of the present invention, there is provided a method for eliminating annoying noise during an error packet processing of an enhanced variable rate vocoder having adaptive codebook factors and fixed codebook factors, the method comprising the steps of: detecting a last valid rate when an error packet is inputter; decaying an average fixed codebook gain to a first threshold when the detected rate is a full rate or a half rate; fading an excitation signal in response to an average adaptive codebook gain and the adaptive codebook factors; generating background noise to the excitation signal in response to the average fixed gain and a seed value; filtering the excitation signal by an adaptive post filter having a pitch post filter and a linear prediction coefficient (LPC) post filter; and outputting the filtered signal. The seed value is set only once at a first error packet for each error packet processing, although the error packet is inputted continually.